package entidadesHibernate;

// Generated 06-nov-2014 15:03:53 by Hibernate Tools 3.4.0.CR1

import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.UniqueConstraint;

/**
 * Usuario generated by hbm2java
 */
@Entity
@Table(name = "usuario", catalog = "bdtpmetodosagiles", uniqueConstraints = @UniqueConstraint(columnNames = "nombreUsuario"))
public class Usuario implements java.io.Serializable {

	private int id;
	private Rol rol;
	private String nombreUsuario;
	private String pass;
	private String email;
	private String nombreApellido;
	private String dni;
	private Date fechaCreacion;
	private String observaciones;
	private Set<Tramite> tramites = new HashSet<Tramite>(0);

	public Usuario() {
	}

	public Usuario(Rol rol, String nombreUsuario, String pass,
			String email, String nombreApellido, String dni, Date fechaCreacion) {
		this.rol = rol;
		this.nombreUsuario = nombreUsuario;
		this.pass = pass;
		this.email = email;
		this.nombreApellido = nombreApellido;
		this.dni = dni;
		this.fechaCreacion = fechaCreacion;
	}
	
	public Usuario(int id, Rol rol, String nombreUsuario, String pass,
			String email, String nombreApellido, String dni) {
		this.id = id;
		this.rol = rol;
		this.nombreUsuario = nombreUsuario;
		this.pass = pass;
		this.email = email;
		this.nombreApellido = nombreApellido;
		this.dni = dni;
	}

	public Usuario(int id, Rol rol, String nombreUsuario, String pass,
			String email, String nombreApellido, String dni,
			Date fechaCreacion, String observaciones, Set<Tramite> tramites) {
		this.id = id;
		this.rol = rol;
		this.nombreUsuario = nombreUsuario;
		this.pass = pass;
		this.email = email;
		this.nombreApellido = nombreApellido;
		this.dni = dni;
		this.fechaCreacion = fechaCreacion;
		this.observaciones = observaciones;
		this.tramites = tramites;
	}

	@Id
	@Column(name = "id", unique = true, nullable = false)
	public int getId() {
		return this.id;
	}

	public void setId(int id) {
		this.id = id;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "id_rol", nullable = false)
	public Rol getRol() {
		return this.rol;
	}

	public void setRol(Rol rol) {
		this.rol = rol;
	}

	@Column(name = "nombreUsuario", unique = true, nullable = false, length = 15)
	public String getNombreUsuario() {
		return this.nombreUsuario;
	}

	public void setNombreUsuario(String nombreUsuario) {
		this.nombreUsuario = nombreUsuario;
	}

	@Column(name = "pass", nullable = false, length = 40)
	public String getPass() {
		return this.pass;
	}

	public void setPass(String pass) {
		this.pass = pass;
	}

	@Column(name = "email", nullable = false, length = 40)
	public String getEmail() {
		return this.email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	@Column(name = "nombreApellido", nullable = false, length = 60)
	public String getNombreApellido() {
		return this.nombreApellido;
	}

	public void setNombreApellido(String nombreApellido) {
		this.nombreApellido = nombreApellido;
	}

	@Column(name = "dni", nullable = false, length = 10)
	public String getDni() {
		return this.dni;
	}

	public void setDni(String dni) {
		this.dni = dni;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "fechaCreacion", length = 19)
	public Date getFechaCreacion() {
		return this.fechaCreacion;
	}

	public void setFechaCreacion(Date fechaCreacion) {
		this.fechaCreacion = fechaCreacion;
	}

	@Column(name = "observaciones", length = 55)
	public String getObservaciones() {
		return this.observaciones;
	}

	public void setObservaciones(String observaciones) {
		this.observaciones = observaciones;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "usuario")
	public Set<Tramite> getTramites() {
		return this.tramites;
	}

	public void setTramites(Set<Tramite> tramites) {
		this.tramites = tramites;
	}

}
